/**
 * 
 */
package com.enjoyor.soa.traffic.api.service.dubbo.ovms;

import java.util.Map;

import com.enjoyor.soa.traffic.api.dto.ovms.DevInfoDto;
import com.enjoyor.soa.traffic.api.dto.ovms.DevStatusPlanDto;
import com.enjoyor.soa.traffic.api.dto.ovms.LogUserDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * @author ly 设备管理
 */
public interface DubboDeviceService {

	/**
	 * 获取设备列表
	 * 
	 * @param token
	 * @param systemkey
	 * @param map
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public ResultPojo getDevList(String token, String systemkey, LogUserDto logUser, Map map);

	/**
	 * 获取设备分页
	 * 
	 * @param token
	 * @param systemkey
	 * @param map
	 * @param page
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public ResultPojo getDevPage(String token, String systemkey, LogUserDto logUser, Map map, Page page);

	/**
	 * 删除设备
	 * 
	 * @param token
	 * @param systemkey
	 * @param dev_id
	 *            设备编号
	 * @return
	 */
	public ResultPojo deleteDev(String token, String systemkey, LogUserDto logUser, String dev_id);

	/**
	 * 新增设备
	 * 
	 * @param token
	 * @param systemkey
	 * @param devinfo
	 * @return
	 */
	public ResultPojo insertDev(String token, String systemkey, LogUserDto logUser, DevInfoDto devinfo);

	/**
	 * 更新设备
	 * 
	 * @param token
	 * @param systemkey
	 * @param devinfo
	 * @return
	 */
	public ResultPojo updateDev(String token, String systemkey, LogUserDto logUser, DevInfoDto devinfo);

	/**
	 * 获取设备状态策略列表
	 * 
	 * @param token
	 * @param systemkey
	 * @param map
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public ResultPojo getDevStatusPlanList(String token, String systemkey, LogUserDto logUser, Map map);

	/**
	 * 获取设备状态策略分页
	 * 
	 * @param token
	 * @param systemkey
	 * @param map
	 * @param page
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public ResultPojo getDevStatusPlanPage(String token, String systemkey, LogUserDto logUser, Map map, Page page);

	/**
	 * 删除设备状态策略
	 * 
	 * @param token
	 * @param systemkey
	 * @param record_id
	 *            记录编号
	 * @param device_id
	 *            设备编号
	 * @return
	 */
	public ResultPojo deleteDevStatusPlan(String token, String systemkey, LogUserDto logUser, String record_id,
			String dev_id);

	/**
	 * 新增设备状态策略
	 * 
	 * @param token
	 * @param systemkey
	 * @param plan
	 * @return
	 */
	public ResultPojo insertDevStatusPlan(String token, String systemkey, LogUserDto logUser, DevStatusPlanDto plan);

	/**
	 * 更新设备状态策略
	 * 
	 * @param token
	 * @param systemkey
	 * @param plan
	 * @return
	 */
	public ResultPojo updateDevStatusPlan(String token, String systemkey, LogUserDto logUser, DevStatusPlanDto plan);

	/**
	 * 设备统计数据
	 * 
	 * @param token
	 * @param systemkey
	 * @param map
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public ResultPojo getDeviceCount(String token, String systemkey, LogUserDto logUser, Map map);

	/**
	 * 获取设备状态统计
	 * 
	 * @param token
	 * @param systemkey
	 * @return
	 */
	public ResultPojo getDeviceStatusCount(String token, String systemkey, LogUserDto logUser);

	/**
	 * 获取设备状态列表
	 * 
	 * @param token
	 * @param systemkey
	 * @param dev_ids
	 *            传设备id，多个id用“，”隔开
	 * @return
	 */
	public ResultPojo getDevStatusList(String token, String systemkey, LogUserDto logUser, String dev_ids);

	/**
	 * 更新设备状态
	 * 
	 * @param token
	 * @param systemkey
	 * @param dev_id
	 * @return
	 */
	public ResultPojo updateDevStatus(String token, String systemkey, LogUserDto logUser, String dev_id, String status);

	/**
	 * 删除设备状态
	 * 
	 * @param token
	 * @param systemkey
	 * @param dev_id
	 * @return
	 */
	public ResultPojo deleteDevStatus(String token, String systemkey, LogUserDto logUser, String dev_id);

	/**
	 * 获取设备状态统计
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @return
	 */
	ResultPojo getDevStatusCount(String token, String systemkey, String regionId, String deptId, LogUserDto logUser);

	/**
	 * 获取测速设备列表
	 * 
	 * @param token
	 * @param systemkey
	 * @param logUser
	 * @param map
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public ResultPojo getSpeedDevList(String token, String systemkey, LogUserDto logUser, Map map);
}
